﻿@*@model IEnumerable<DHQGHN.PM2.Models.EnumeratorModel>*@

@*<link href="~/Content/index.css" rel="stylesheet" />*@

<script>
    @functions{
        public string GetAntiForgeryToken()
        {
            string cookieToken, formToken;
            AntiForgery.GetTokens(null, out cookieToken, out formToken);
            return cookieToken + "," + formToken;
        }
    }

</script>

    <div class="row">
        <div class="col-md-12">
            <input type="password" class="txt form-control" name="password3" id="password3" placeholder="Mật khẩu cũ" autocomplete="off">
            <div class="row">
                <div class="col-md-12" id="PassOld2" hidden="hidden" style="color:red;">
                    <span id="8char" class="glyphicon glyphicon-remove" style="color:red;"></span> Chưa nhập mật khẩu cũ<br>
                </div>
            </div>
            <div class="row">
                <div class="col-md-12" id="PassOld1" hidden="hidden" style="color:red;">
                    <span id=" 8char" class="glyphicon glyphicon-remove" style="color:red;">
                    </span> Sai mật khẩu cũ<br>
                </div>
            </div>
            <input style="margin-top:5px;" type="password" class="txt form-control"
                   name="password1" id="password1" placeholder="Mật khẩu mới"
                   onkeyup="return passwordChanged();" maxlength="20" autocomplete="off">
            <div class="row">
                <span id="strength"></span>
            </div>
            <div class="row">
                <div class="col-md-12" id="PassNew1" hidden="hidden" style="color:red;">
                    <span id="8char" class="glyphicon glyphicon-remove" style="color:red;"></span> Chưa nhập mật khẩu mới<br>
                </div>
            </div>
            <div class="row">
                <div class="col-md-12" id="checkPassNew1" hidden="hidden" style="color:red;">
                    <span id="8char" class="glyphicon glyphicon-remove" style="color:red;"></span> Mật khẩu mới trùng mật khẩu cũ<br>
                </div>
            </div>
            <input style="margin-top:5px;" type="password" class="txt form-control" name="password2" id="password2" placeholder="Nhập lại mật khẩu" autocomplete="off">
            <div class="row">
                <div class="col-md-12" id="PassNew2" hidden="hidden" style="color:red;">
                    <span id="8char" class="glyphicon glyphicon-remove" style="color:red;"></span> Chưa nhập mật khẩu mới<br>
                </div>
            </div>
            <div class="row">
                <div class="col-md-12" id="PassAgain" hidden="hidden" style="color:red;">
                    <span id="8char" class="glyphicon glyphicon-remove" style="color:red;"></span> Mật khẩu nhập lại chưa đúng<br>
                </div>
            </div>
            
            <input style="margin-top:5px; float:right" type="submit" class="col-md-3 btn btn-primary" data-loading-text="Changing Password..." value="Cập nhật" onclick="ChangePassWord()">

        </div><!--/col-sm-6-->
    </div><!--/row-->

<script>
    var checkValidPass = "";
    var ConditionPass = "";
    var checkValid = "";
    var ConditionTrueFales = false;

    $(document).ready(function () {
        $('#password1').keypress(function (e) {
            if (e.which == 13) {
                ChangePassWord();
            }
        });

        $('#password2').keypress(function (e) {
            if (e.which == 13) {
                ChangePassWord();
            }
        });

        $('#password3').keypress(function (e) {
            if (e.which == 13) {
                ChangePassWord();
            }
        });
    });

    function ChangePassWord()
    {
        if (checkValidPass == "1") {
            return false;
        }

        ConditionPass = "";
        $('#PassAgain').hide();
        $('#PassOld1').hide();
        $('#PassOld2').hide();
        $('#PassNew1').hide();
        $('#PassNew2').hide();
        $('#checkPassNew1').hide();
        checkValid = "";
        ConditionPass = "";

        if ($('#password3').val() == "") {
            $('#PassOld2').show();
            checkValid = "1";
        }
        if ($('#password1').val() == "") {
            $('#PassNew1').show();
            checkValid = "1";
        }
        if ($('#password2').val() == "") {
            $('#PassNew2').show();
            checkValid = "1";
        }
        if (checkValid == "1") {
            return false;
        }
        else {
            $.ajax({
                url: "@Url.Action("CheckPassUserName", "Enumerator")",
                type: "POST",
                headers: {
                    'VerificationToken': '@GetAntiForgeryToken()'
                },
                data: {
                    PassWord: $('#password3').val()
                },
                success: function (Respond) {
                    if (Respond == true) {
                        if ($('#password1').val() === $('#password2').val()) {
                            ConditionPass = "1";
                        }
                        if (ConditionPass == "") {
                            $('#PassAgain').show();
                            return false;
                        }
                        else {
                            $.ajax({
                                url: "@Url.Action("CheckPassUserName", "Enumerator")",
                                type: "POST",
                                headers: {
                                    'VerificationToken': '@GetAntiForgeryToken()'
                                },
                                data: {
                                    PassWord: $('#password1').val()
                                },
                                success: function (Respond) {
                                    if (Respond == true) {
                                        $('#checkPassNew1').show();
                                        return false;
                                    }
                                    else
                                    {
                                        $.ajax({
                                            url: "@Url.Action("SaveChangePass", "Enumerator")",
                                            type: "POST",
                                        headers: {
                                            'VerificationToken': '@GetAntiForgeryToken()'
                                        },
                                        data: {
                                            PassWord: $('#password1').val()
                                        },
                                        success: function (dataResult) {
                                            ConditionTrueFales = dataResult;
                                            if (dataResult == true) {
                                                $('#myModal').hide();
                                                $('.modal-backdrop').hide();
                                                Layout.toastr("", "Thay đổi mật khẩu thành công");
                                            }
                                            else {
                                                Layout.toastr("", "Không thay đổi được mật khẩu");
                                            }
                                        },
                                        complete: function () {
                                           
                                        }
                                    });
                                    }
                                }
                            });
                        }
                    }
                    else {
                        $('#PassOld1').show();
                        return false;
                    }
                }
            });
        }
    }

    function passwordChanged() {
        checkValidPass = "";
        var strength = document.getElementById('strength');
        var strongRegex = new RegExp("^(?=.{9,})(?=.*[A-Z])(?=.*[a-z])(?=.*[@@!$^-_()])(?=.*[0-9])(?=.*\W).*$", "g");
        var mediumRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[@@!$^-_()])(?=.*[0-9]).*$", "g");
        var EachRegex = new RegExp("@ViewBag.ExceptionPass.*$", "g");
        var enoughRegex = new RegExp("(?=.{7,}).*", "g");
        var pwd = document.getElementById("password1");
        if (false == enoughRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:red">Mật khẩu ít nhất 8 ký tự</span>';
            checkValidPass = "1";
        } else if (EachRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:red">Không được phép nhập mật khẩu này</span>';
            checkValidPass = "1";
        } else if (strongRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:green">Mật khẩu mạnh!</span>';
        } else if (mediumRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:orange">Mật khẩu bình thường!</span>';
        } else {
            strength.innerHTML = '<span style="color:red">Mật khẩu bao gồm ký tự hoa, thường, số và ký tự đặc biệt (@@!$^-_())</span>';
            checkValidPass = "1";
        }
    }

</script>